package com.example.onlinemusic.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * @Configuration：表明当前类是⼀个配置类，被注解的类内部包含有⼀个或多个被@Bean注解的⽅
 * 法，⽤于构建bean定义，初始化Spring容器。
 *
 * @Bean注解：⽤于告诉⽅法，产⽣⼀个Bean对象，然后这个Bean对象交给Spring管理。产⽣这个
 * Bean对象的⽅法Spring只会调⽤⼀次，随后这个Spring将会将这个Bean对象放在⾃⼰的IOC容器中。
 *
 * SpringIOC 容器管理⼀个或者多个bean，这些bean都需要在@Configuration注解下进⾏创建，在⼀
 * 个⽅法上使⽤@Bean注解就表明这个⽅法需要交给Spring进⾏管理。
 */

@Configuration
public class AppConfig {

    /**
     * Bcrypt 加密
     * @return
     */
    @Bean
    public BCryptPasswordEncoder getBCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
